package visitor;

import ast.*;

public interface Visitor {
	 public Object visit(Programa node, Object param);
	 public Object visit(DeclaVariable node, Object param);
	 public Object visit(DeclaFuncion node, Object param);
	 public Object visit(Asignacion node, Object param);
	 public Object visit(SentenciaWrite node, Object param);
	 public Object visit(SentenciaRead node, Object param);
	 public Object visit(SentenciaWhile node, Object param);
	 public Object visit(SentenciaIf node, Object param);
	 public Object visit(SentenciaLlamada node, Object param);
	 public Object visit(SentenciaReturn node, Object param);
	 public Object visit(RefVar node, Object param);
	 public Object visit(ExpresionLlamada node, Object param);
	 public Object visit(ExprAritmetica node, Object param);
	 public Object visit(ExprComparacion node, Object param);
	 public Object visit(ExpresionLogica node, Object param);
	 public Object visit(ExpresionArray node, Object param);
	 public Object visit(ExpresionCast node, Object param);
	 public Object visit(ExprAccesoParametro node, Object param);
	 public Object visit(ExprConstanteEntera node, Object param);
	 public Object visit(ExprConstanteReal node, Object param);
	 public Object visit(ExprConstanteChar node, Object param);
	 public Object visit(TipoInt node, Object param);
	 public Object visit(TipoReal node, Object param);
	 public Object visit(TipoChar node, Object param);
	 public Object visit(TipoVoid node, Object param);
	 public Object visit(TipoArray node, Object param);
	 public Object visit(TipoFuncion node, Object param);
	 public Object visit(TipoStruct node, Object param);
}

